<!DOCTYPE html>
<html>

<head>

    <script type="module">

        // // 创建一个原型对象
        // const animal = {
        //     makeSound() {
        //         console.log('I am making a sound');
        //     }
        // };

        // // 创建一个子对象，继承自原型对象
        // const cat = Object.create(animal);
        // cat.makeSound(); // I am making a sound

        // // 在子对象上添加新的属性和方法
        // cat.name = 'Whiskers';
        // cat.meow = function () {
        //     console.log(`${this.name} says "Meow!"`);
        // };
        // cat.meow(); // Whiskers

        // Animal 类0
        function Animal(name) {
            this.name = name;
        }

        Animal.SZQ="SZQ111";// 不在原型链上的属性
        Animal.prototype.makeSound = function () {
            console.log('I am making a sound');
        };

        // Cat 类
        function Cat(name) {
            Animal.call(this, name);
        }

        Cat.prototype = Object.create(Animal.prototype);
        Cat.prototype.constructor = Cat;

        // console.log(CAT.SZQ);

        Cat.prototype.meow = function () {
            console.log(`${this.name} says "Meow!"`);
        };
        Cat.prototype.meow();

        // 创建 Cat 对象
        const whiskers = new Cat('Whiskers');

        // console.log(whiskers.SZQ);
        whiskers.makeSound(); // I am making a sound
        whiskers.meow(); // Whiskers says "Meow!"


    </script>
</head>

<body>

    <div id="mydiv"></div>

</body>

</html>